package com.java.cart.service;

import com.java.param.CartListParam;
import com.java.param.ProductIdRemoveParam;
import com.java.pojo.Cart;
import com.java.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface CartService {
    /**
     * 通过用户id和商品id将商品详细信息保存到购物车中
     * @param cart
     * @return 商品详细信息CartVo
     */
    R save(Cart cart);

    /**
     * 通过用户id查询所有商品id集合，再根据商品id查询所有商品信息
     * @param cartListParam
     * @return
     */
    R list(CartListParam cartListParam);

    /**
     * 根据商品id查询商品信息
     * 修改购物车数量
     * @param cart
     * @return
     */
    R update(Cart cart);

    /**
     *根据用户id和商品id删除购物车内的数据
     * @return
     * @param cart
     */
    R remove(Cart cart);

    /**
     * 清空对应id的购物车项
     * @param cartIds
     */
    void clearIds(List<Integer> cartIds);

    /**
     * 根据商品id检查所有用户购物车是否有该商品
     * @param productIdRemoveParam
     * @return
     */
    R check(ProductIdRemoveParam productIdRemoveParam);
}
